import { request } from '@/utils/request.js'

// TODO: 文档上写的是传UID，但是前端只能拿到临时的Code，这块需要和张皓然再讨论一下
// 登录具体流程参考文档
export async function login (callback) {
		// 获取用户登录用的code——具体怎么用参考文档
		const code = await wx.login();
		const wxData = await request({
			url: '/login',
			method: 'get',
			// headers: {
			// },
			params: {
				code: code
			}
		})
		let userProfile = null;
		await wx.showModal({
			title: '请求获取微信账号信息',
			content: '微信登陆后才能正常使用小程序功能',
			success (modalInfo) {
				if (modalInfo.confirm) {
					wx.getUserProfile({
						desc: '需要登录后才能使用',
						lang: 'zh_CN',
						success (e) {
							userProfile = e;
							callback({
								code,
								userProfile,
								wxData
							})
						},
						fail (e) {
							console.log('profile_fail', e);
							wx.showModal({
								title: '登录失败',
								duration: 2000,
								icon: 'error'
							})
							return ;
						}
					})
				} else {
					wx.showToast({
						title: '取消登录',
						duration: 2000,
						icon: 'error'
					});
					return ;
				}
			},
			fail (e) {
				return e
			}
		})
}

// 获取一个店铺的全部商品信息
export async function queryGoods (data) {
	// 时间比较紧，前端就先不写分页查询了
	// 店家目前最多就几十个商品
	// 等出现了几百个商品的情况再写
	return await request({
		url: '/query/goods',
		method: 'get',
		params: {
			id: data.id ?? '-1',
			index: 1,
			size: 25
		}
	})
}

// 查询某个商品的详情
// 看了看文档，怎么和上面那个方法获取的信息是一样的..
// 那查看的时候直接从前端找信息不就好了吗，没必要再调用这个
export async function queryAGood (data) {
	return await request({
		url: '/query/agoods',
		method: 'get',
		params: {
			id: data.id ?? '-1'
		}
	})
}

// 查询一个订单的详细信息
export async function queryRecordById (data) {
	return await request({
		url: '/query/record',
		method: 'post',
		params: {
			id: data.id ?? '-1',
		}
	})
}

// 取消(删除)一个订单
export async function deleteRecord (data) {
	return await request({
		url: '/delete/records',
		method: 'post',
		data: {
			ids: data?.ids ?? ['-1'],
		}
	})
}

